Rebuild the vendored highlight.js bundle at 11.12.0 - #31
Conversation
The pin lives in scripts/vendor-highlight.sh as a shell variable, so dependabot cannot see it; the weekly sweep is what catches the drift. The bundle is a function of the pin and the registry's $languages.names, and rerunning the script is how those two stay unable to disagree: all fifteen declared names still register under leaf's own spelling, html and toml through the xml and ini aliases. 11.12.0 is grammar work. Among the languages leaf carries: a ReDoS fix in xml removing recursive sublanguage references, a markdown fix that stops a `***` thematic break reading as the start of bold, rust char escapes no longer leaking their highlight, and additions to css, go, java, javascript, python, and shell.
leaf-agent
left a comment
There was a problem hiding this comment.
Reviewed the bump; nothing to change in the diff. Rebuilding from scripts/vendor-highlight.sh at HLJS_VERSION=11.12.0 reproduces the committed bundle byte-for-byte, so the artifact is a function of the pin and the registry as the script's header claims, not a hand-edited blob.
One observation, not about this diff: the weekly step names two bundles, and only one moved here. scripts/vendor-marked.sh still holds MARKED_VERSION=18.0.7 while upstream is at 18.0.10 — 18.0.8 published 2026-08-04 and 18.0.10 on 2026-08-18, so both predate this sweep. Nothing else on the branch or in the open PRs covers it, and dependabot can't see that pin either, so it stays invisible until the next weekly reading. Separate concern, separate PR — noting it here because this is where the sweep's other half would have been.
What I checked
- Reproducible: reran
scripts/vendor-highlight.shon the merged tree;cmpagainst the committedhighlight.esm.jsis identical (77602 bytes).versionStringin the bundle reads11.12.0, andnpm view highlight.js dist-tagsconfirms that islatest. - The two lists still agree: the bundle's
registerLanguagecalls are exactly the fifteen names inregistry.json's$languages.names— none missing, none extra — withhtml/tomlarriving through thexml/inialiases. - Round trip: drove both bundles over the fifteen languages × nine samples, including the cases 11.12.0's grammar work touches (a markdown
***thematic break, a rust'a\n'char literal,<script>/<style>nested in html — the ReDoS fix that removedxml's recursive sublanguage references). Zero round-trip failures against the new bundle, so thesyntaxpartition promise andUNREAD_SYNTAXhold. - No role silently lost: compared the
hljs-*scope set each language emits, old against new. Nothing dropped — which is the failureSYNTAX_ROLE's fall-back-to-plain design would have absorbed without an error. The one change isdiffhunk headers now emittinghljs-meta(@@ -1 +1 @@was bare before), which maps to the existingfnrole, so it colours rather than reading wrong. - No other consumer:
11.11.1appeared only in the script and the bundle; nothing pins a size, hash, or version elsewhere. The hljs surfaceleaf.jsuses —getLanguage,highlight, thehljs-class prefix — is unchanged in 11.12.0. - CI: every gating check on
6e8367dsettled green.
|
The review asks for no change to this diff, and the sweep's other half is already covered: #32 rebuilds Nothing further to do here. Every gating check on State of the other half#32's |
Weekly vendored-bundle sweep.
scripts/vendor-highlight.shheldHLJS_VERSION=11.11.1while upstream is at 11.12.0 — the pin is a shell variable rather than a manifest entry, so dependabot cannot see it and the drift is silent until this step reads it. Bumped the variable and reran the script; the rebuilt bundle is the change, not the version string.The bundle is a function of both the pin and the registry, since the script reads
$languages.namesout ofregistry.jsonto decide what to bundle. All fifteen declared names still register under leaf's own spelling, withhtmlandtomlresolving through thexmlandinialiases — so the page's vocabulary and the tokenizer's remain unable to disagree.11.12.0 is grammar work, no API change. Among the languages leaf carries: a ReDoS fix in
xmlremoving recursive sublanguage references, amarkdownfix that stops a***thematic break reading as the start of bold text,rustchar-literal escapes no longer leaking their highlight past the literal, and keyword or literal additions tocss,go,java,javascript,python, andshell.Verification
hljs.listLanguages()against the new bundle returns exactly the registry's fifteen names, none missing and none extra, andhljs.versionStringreports11.12.0.Tokenizing round-trips the source words for each of the sampled languages — the
UNREAD_SYNTAXcontract, checked properly across the corpus by the browser gate below.Full suite green on this branch —
uv run pytest tests --run-nightlygave1011 passed, 6 skipped in 615.23s. The targeted readings, run first:test_every_path_a_diff_resolves_names_a_language_the_bundle_carriesandtest_every_language_returns_the_source_it_was_givenare the two that would catch a bundle built from a different list than the registry states.